package join.model.beans;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.springframework.format.annotation.DateTimeFormat;

import join.util.AppListUtil;
import join.util.FormatterUtil;
import join.util.RepositoryUtil;

@Entity
@Table(name="proyecto_participante", schema=RepositoryUtil.ESQUEMA_NOMBRE)
public class ProyectoParticipante {

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name ="id", nullable=false)
	private Long id;
	@Column(name ="proyecto", nullable=false)
	private Long proyecto;
	@Column(name ="rol", nullable=false)
	private String rol;
	@Column(name ="nombre", nullable=false)
	private String nombre;
	@Column(name ="correo", nullable=true)
	private String correo;
	@Column(name ="telefono", nullable=true)
	private String telefono;
	@Column(name ="registro", nullable=false)
	@DateTimeFormat(pattern = FormatterUtil.DATE_FORMAT)
	private Date registro;
	@Column(name ="vinculacion", nullable=true)
	private Date vinculacion;
	@Column(name ="sigla", nullable=false)
	private String sigla;
	@Column(name ="nota", nullable=true)
	private String nota;
	@Column(name ="estado", nullable=false)
	private String estado;
	
	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}
	/**
	 * @return the proyecto
	 */
	public Long getProyecto() {
		return proyecto;
	}
	/**
	 * @param proyecto the proyecto to set
	 */
	public void setProyecto(Long proyecto) {
		this.proyecto = proyecto;
	}
	/**
	 * @return the rol
	 */
	public String getRol() {
		return rol;
	}
	/**
	 * @param rol the rol to set
	 */
	public void setRol(String rol) {
		this.rol = rol;
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the correo
	 */
	public String getCorreo() {
		return correo;
	}
	/**
	 * @param correo the correo to set
	 */
	public void setCorreo(String correo) {
		this.correo = correo;
	}
	/**
	 * @return the telefono
	 */
	public String getTelefono() {
		return telefono;
	}
	/**
	 * @param telefono the telefono to set
	 */
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	/**
	 * @return the registro
	 */
	public Date getRegistro() {
		return registro;
	}
	/**
	 * @param registro the registro to set
	 */
	public void setRegistro(Date registro) {
		this.registro = registro;
	}
	/**
	 * @return the vinculacion
	 */
	public Date getVinculacion() {
		return vinculacion;
	}
	/**
	 * @param vinculacion the vinculacion to set
	 */
	public void setVinculacion(Date vinculacion) {
		this.vinculacion = vinculacion;
	}
	/**
	 * @return the nota
	 */
	public String getNota() {
		return nota;
	}
	/**
	 * @param nota the nota to set
	 */
	public void setNota(String nota) {
		this.nota = nota;
	}
	/**
	 * @return the estado
	 */
	public String getEstado() {
		return estado;
	}
	/**
	 * @param estado the estado to set
	 */
	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	/**
	 * @return the sigla
	 */
	public String getSigla() {
		return sigla;
	}
	/**
	 * @param sigla the sigla to set
	 */
	public void setSigla(String sigla) {
		this.sigla = sigla;
	}
	/**
	 * Nombre del rol
	 * @return
	 */
	public String getRolNombre (){
		return AppListUtil.listaProcesoTexto("proyectoParticipanteRol", getRol());
	}
	
	/**
	 * Nombre del estado
	 * @return
	 */
	public String getEstadoNombre (){
		return AppListUtil.listaProcesoTexto("proyectoParticipanteEstado", getEstado());
	}
}